#ifndef _CkCert_H
#define _CkCert_H
#include "Chilkat_C.h"

HCkCert CkCert_Create(void);
void CkCert_Dispose(HCkCert handle);
void CkCert_getCspName(HCkCert handle, HCkString retval);
BOOL CkCert_getExpired(HCkCert handle);
BOOL CkCert_getForClientAuthentication(HCkCert handle);
BOOL CkCert_getForCodeSigning(HCkCert handle);
BOOL CkCert_getForSecureEmail(HCkCert handle);
BOOL CkCert_getForServerAuthentication(HCkCert handle);
BOOL CkCert_getForTimeStamping(HCkCert handle);
BOOL CkCert_getHasKeyContainer(HCkCert handle);
unsigned long CkCert_getIntendedKeyUsage(HCkCert handle);
BOOL CkCert_getIsRoot(HCkCert handle);
void CkCert_getIssuerC(HCkCert handle, HCkString retval);
void CkCert_getIssuerCN(HCkCert handle, HCkString retval);
void CkCert_getIssuerDN(HCkCert handle, HCkString retval);
void CkCert_getIssuerE(HCkCert handle, HCkString retval);
void CkCert_getIssuerL(HCkCert handle, HCkString retval);
void CkCert_getIssuerO(HCkCert handle, HCkString retval);
void CkCert_getIssuerOU(HCkCert handle, HCkString retval);
void CkCert_getIssuerS(HCkCert handle, HCkString retval);
void CkCert_getKeyContainerName(HCkCert handle, HCkString retval);
void CkCert_getLastErrorHtml(HCkCert handle, HCkString retval);
void CkCert_getLastErrorText(HCkCert handle, HCkString retval);
void CkCert_getLastErrorXml(HCkCert handle, HCkString retval);
BOOL CkCert_getMachineKeyset(HCkCert handle);
BOOL CkCert_getRevoked(HCkCert handle);
void CkCert_getRfc822Name(HCkCert handle, HCkString retval);
void CkCert_getSerialNumber(HCkCert handle, HCkString retval);
void CkCert_getSha1Thumbprint(HCkCert handle, HCkString retval);
BOOL CkCert_getSignatureVerified(HCkCert handle);
BOOL CkCert_getSilent(HCkCert handle);
void CkCert_getSubjectC(HCkCert handle, HCkString retval);
void CkCert_getSubjectCN(HCkCert handle, HCkString retval);
void CkCert_getSubjectDN(HCkCert handle, HCkString retval);
void CkCert_getSubjectE(HCkCert handle, HCkString retval);
void CkCert_getSubjectL(HCkCert handle, HCkString retval);
void CkCert_getSubjectO(HCkCert handle, HCkString retval);
void CkCert_getSubjectOU(HCkCert handle, HCkString retval);
void CkCert_getSubjectS(HCkCert handle, HCkString retval);
BOOL CkCert_getTrustedRoot(HCkCert handle);
BOOL CkCert_getUtf8(HCkCert handle);
void CkCert_putUtf8(HCkCert handle, BOOL newVal);
void CkCert_getValidFrom(HCkCert handle, SYSTEMTIME *retval);
void CkCert_getValidTo(HCkCert handle, SYSTEMTIME *retval);
void CkCert_getVersion(HCkCert handle, HCkString retval);
int CkCert_CheckRevoked(HCkCert handle);
BOOL CkCert_ExportCertDer(HCkCert handle, HCkByteData data);
BOOL CkCert_ExportCertDerFile(HCkCert handle, const char *filename);
BOOL CkCert_ExportCertPem(HCkCert handle, HCkString str);
BOOL CkCert_ExportCertPemFile(HCkCert handle, const char *filename);
HCkPrivateKey CkCert_ExportPrivateKey(HCkCert handle);
HCkPublicKey CkCert_ExportPublicKey(HCkCert handle);
BOOL CkCert_ExportToPfxFile(HCkCert handle, const char *pfxFilename, const char *password, BOOL bIncludeChain);
BOOL CkCert_GetEncoded(HCkCert handle, HCkString str);
BOOL CkCert_HasPrivateKey(HCkCert handle);
BOOL CkCert_LinkPrivateKey(HCkCert handle, const char *keyContainerName, BOOL bMachineKeyset, BOOL bForSigning);
BOOL CkCert_LoadByCommonName(HCkCert handle, const char *cn);
BOOL CkCert_LoadByEmailAddress(HCkCert handle, const char *emailAddress);
BOOL CkCert_LoadFromBase64(HCkCert handle, const char *encodedCert);
BOOL CkCert_LoadFromBinary(HCkCert handle, const unsigned char *buf, unsigned long bufLen);
BOOL CkCert_LoadFromFile(HCkCert handle, const char *filename);
BOOL CkCert_LoadPfxData(HCkCert handle, HCkByteData pfxData, const char *password);
BOOL CkCert_LoadPfxData2(HCkCert handle, const unsigned char *buf, unsigned long bufLen, const char *password);
BOOL CkCert_LoadPfxFile(HCkCert handle, const char *filename, const char *password);
BOOL CkCert_PemFileToDerFile(HCkCert handle, const char *inFilename, const char *outFilename);
BOOL CkCert_SaveLastError(HCkCert handle, const char *filename);
BOOL CkCert_SaveToFile(HCkCert handle, const char *filename);
BOOL CkCert_SetFromEncoded(HCkCert handle, const char *encodedCert);
void CkCert_TestCert(HCkCert handle);
const char *CkCert_cspName(HCkCert handle);
const char *CkCert_exportCertPem(HCkCert handle);
const char *CkCert_getEncoded(HCkCert handle);
const char *CkCert_issuerC(HCkCert handle);
const char *CkCert_issuerCN(HCkCert handle);
const char *CkCert_issuerDN(HCkCert handle);
const char *CkCert_issuerE(HCkCert handle);
const char *CkCert_issuerL(HCkCert handle);
const char *CkCert_issuerO(HCkCert handle);
const char *CkCert_issuerOU(HCkCert handle);
const char *CkCert_issuerS(HCkCert handle);
const char *CkCert_keyContainerName(HCkCert handle);
const char *CkCert_lastErrorHtml(HCkCert handle);
const char *CkCert_lastErrorText(HCkCert handle);
const char *CkCert_lastErrorXml(HCkCert handle);
const char *CkCert_rfc822Name(HCkCert handle);
const char *CkCert_serialNumber(HCkCert handle);
const char *CkCert_sha1Thumbprint(HCkCert handle);
const char *CkCert_subjectC(HCkCert handle);
const char *CkCert_subjectCN(HCkCert handle);
const char *CkCert_subjectDN(HCkCert handle);
const char *CkCert_subjectE(HCkCert handle);
const char *CkCert_subjectL(HCkCert handle);
const char *CkCert_subjectO(HCkCert handle);
const char *CkCert_subjectOU(HCkCert handle);
const char *CkCert_subjectS(HCkCert handle);
const char *CkCert_version(HCkCert handle);
#endif
